package com.itheima.stock.service;

import com.itheima.stock.common.domain.*;
import com.itheima.stock.pojo.StockBusiness;
import com.itheima.stock.vo.resp.PageResult;
import com.itheima.stock.vo.resp.R;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface StockServicer {

    /**
     * 获取所有股票信息
     */
    List<StockBusiness> getAllStockBusiness();

    //其它省略......

    /**
     * 获取国内大盘的实时数据
     *
     * @return
     */
    R<List<InnerMarketDomain>> innerIndexAll();

    /**
     * 需求说明: 沪深两市板块分时行情数据查询，以交易时间和交易总金额降序查询，取前10条数据
     *
     * @return
     */
    R<List<StockBlockDomain>> sectorAllLimit();

    R<List<StockUpdownDomain>> stockIncreaseLimit();

    /**
     * 沪深两市个股行情列表查询 ,以时间顺序和涨幅分页查询
     *
     * @param page     当前页
     * @param pageSize 每页大小
     * @return
     */
    R<PageResult<StockUpdownDomain>> stockPage(Integer page, Integer pageSize);

    //涨跌停统计功能实现
    R<Map> upDownCount();

    /**
     * 将指定页的股票数据导出到excel表下
     *
     * @param response
     * @param page     当前页
     * @param pageSize 每页大小
     */
    // 涨幅信息数据导出功能实现
    void stockExport(HttpServletResponse response, Integer page, Integer pageSize);

    // 功能描述：统计国内A股大盘T日和T-1日成交量对比功能（成交量为沪市和深市成交量之和）
    R<Map> stockTradeVol4InnerMarket();

    /**
     * 查询当前时间下股票的涨跌幅度区间统计功能
     * 如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询点
     *
     * @return
     */
    R<Map> stockUpDownScopeCount();

    //功能描述：查询单个个股的分时行情数据，也就是统计指定股票T日每分钟的交易数据；
    // 如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询时间点
    R<List<Stock4MinuteDomain>> stockScreenTimeSharing(String code);
    /**
     * 单个个股日K 数据查询 ，可以根据时间区间查询数日的K线数据
     * @param stockCode 股票编码
     */
    R<List<Stock4EvrDayDomain>> stockCreenDkLine(String stockCode);
}
